﻿/* ************************************************************
 * Namespace: JumpFleetGameLib.xMap
 * Interface:  IPositionableObject
 * Author:  Roy Penrod
 * 
 * IPositionableObject is an interface to define an object
 * that can be positioned in relation to the map and stored
 * within the map.
 *  
 * ************************************************************ */

using System;
using Microsoft.Xna.Framework;

namespace JumpFleetGameLib.xMap
{
    public interface IPositionableObject
    {
        #region PROPERTIES
        
        /// <summary>
        /// Position of the current map origin.  Called by the map.  Type: Vector2
        /// </summary>
        Vector2 CurrentMapPosition { set; }

        /// <summary>
        /// Horizontal and vertical offset from the map's origin.  Type: Vector2
        /// </summary>
        Vector2 CurrentMapOffset { get; set; }

        /// <summary>
        /// Depth the IPositionableObject is drawn at.  Type: float
        /// </summary>
        float Layer { set; }

        /// <summary>
        /// Flag for whether the IPositionableObject is visible.  Type: bool
        /// </summary>
        bool Visible { set; }

         Vector2 Target { get; set; }

        #endregion

        #region METHODS
        #endregion

    } // <-- end interface
} // <-- end namespace
